--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lang/README.it.md v4.5.0-rc.5 (eee4a4d7) Text, 16.69 KB
Reticulum MeshChatX
Un fork ampiamente modificato e ricco di funzionalita di Reticulum MeshChat di Liam Cottle.
Questo progetto e indipendente dal progetto originale Reticulum MeshChat e non e affiliato ad esso.
• Sito web: meshchatx.com
• Codice sorgente: git.quad4.io/RNS-Things/MeshChatX
• Mirror ufficiale: github.com/Quad4/MeshChatX — usato anche per le build Windows e macOS al momento.
• Release: git.quad4.io/RNS-Things/MeshChatX/releases
• Changelog: CHANGELOG.md
• TODO: Boards
Modifiche importanti rispetto a Reticulum MeshChat
• Usa LXST
• Peewee ORM sostituito con SQL diretto
• Axios sostituito con T383838fetch nativo
• Electron 41.x (runtime Node 24 incluso)
• Wheel T383838.whl con web server e asset frontend integrati per piu opzioni di deploy
• i18n
• PNPM e Poetry per le dipendenze
│ [!WARNING] MeshChatX non garantisce la compatibilita dei dati con le versioni precedenti di
│ Reticulum MeshChat. Eseguire un backup prima della migrazione o dei test.
│ [!WARNING] I sistemi legacy non sono ancora completamente supportati. Requisiti minimi attuali:
│ Python T383838>=3.11 e Node T383838>=24 (Electron 41 allinea a Node 24; T383838engines in T383838package.json e la CI seguono
│ la stessa linea).
Requisiti
• Python T383838>=3.11 (da T383838pyproject.toml)
• Node.js T383838>=24 (da T383838package.json, campo T383838engines)
• pnpm T38383810.33.0 (da T383838package.json, campo T383838packageManager)
• Poetry (utilizzato in T383838Taskfile.yml e nei workflow CI)
T282828
task install
task lint:all
task test:all
task build:all
Metodi di installazione
Scegli il metodo in base all'ambiente e al formato del pacchetto.
┌─────────────────────────┬──────────────────────┬───────────────────────────────────────────┬─────┐
│ Metodo │ Include frontend │ Architetture │ Id… │
├─────────────────────────┼──────────────────────┼───────────────────────────────────────────┼─────┤
│ Immagine Docker │ Si │ T383838linux/amd64, T383838linux/arm64 │ Av… │
│ Python wheel (T383838.whl) │ Si │ Qualsiasi architettura supportata da Pyt… │ In… │
│ Linux AppImage │ Si │ T383838x64, T383838arm64 │ Us… │
│ Pacchetto Debian (T383838.deb) │ Si │ T383838x64, T383838arm64 │ In… │
│ Pacchetto RPM (T383838.rpm) │ Si │ Dipende dal CI │ Fe… │
│ Da sorgente │ Compilato localmente │ Architettura host │ Sv… │
└─────────────────────────┴──────────────────────┴───────────────────────────────────────────┴─────┘
Note:
• Il workflow di release compila esplicitamente Linux T383838x64 e T383838arm64 AppImage + DEB.
• RPM viene anche tentato e caricato quando prodotto con successo.
Avvio rapido: Docker
T282828
docker compose up -d
Il file compose predefinito mappa:
• T383838127.0.0.1:8000 sull'host -> porta T3838388000 del container
• T383838./meshchat-config -> T383838/config per la persistenza
In caso di errori di permessi:
T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Installazione da artefatti di release
1) Linux AppImage (x64/arm64)
1. Scaricare T383838ReticulumMeshChatX-v<versione>-linux-<arch>.AppImage dalle release.
2. Rendere eseguibile e avviare:
T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu T383838.deb (x64/arm64)
1. Scaricare T383838ReticulumMeshChatX-v<versione>-linux-<arch>.deb.
2. Installare:
T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) Sistemi RPM
1. Scaricare T383838ReticulumMeshChatX-v<versione>-linux-<arch>.rpm se presente nella release.
2. Installare:
T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (T383838.whl)
I wheel delle release includono gli asset web compilati.
T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless
T383838pipx e supportato:
T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Esecuzione da sorgente (modalita web server)
Per sviluppo o build locali personalizzate.
T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm config Tffa657set verify-store-integrity Tffa657true
pnpm install --frozen-lockfile
pip install Ta5d6ff"poetry==2.3.4"
poetry check --lock
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1
Note sui comandi di installazione:
• T383838pnpm install --frozen-lockfile rifiuta di aggiornare T383838pnpm-lock.yaml e fallisce se il lockfile non corrisponde a T383838package.json. Cosi' si evita che una versione upstream inattesa venga installata silenziosamente.
• T383838verify-store-integrity=true e' impostato anche nel T383838.npmrc del progetto; la riga esplicita T383838pnpm config set rafforza inoltre la configurazione utente.
• Gli script di lifecycle (T383838preinstall/T383838postinstall) sono bloccati di default in pnpm v10+. Solo i pacchetti elencati in T383838pnpm.onlyBuiltDependencies di T383838package.json possono eseguire script di installazione (attualmente T383838electron, T383838electron-winstaller, T383838esbuild, T383838protobufjs).
• T383838poetry check --lock fallisce subito se T383838poetry.lock non e' allineato con T383838pyproject.toml; T383838poetry install risolve poi solo dal lockfile.
• Per un'installazione Poetry strettamente basata sul lockfile (senza refresh implicito), fissa Poetry con T383838pip install "poetry==2.3.4", in linea con la CI.
Se vuoi aggiornare intenzionalmente le dipendenze, esegui T383838pnpm update / T383838poetry update in un commit dedicato e rivedi il diff del lockfile prima del push.
Esecuzione in sandbox (Linux)
Per eseguire il binario nativo T383838meshchatx (alias: T383838meshchat) con isolamento aggiuntivo del filesystem, puoi usare Firejail o Bubblewrap (T383838bwrap) mantenendo l'accesso di rete normale per Reticulum e l'interfaccia web. Esempi completi (pip/pipx, Poetry, note sulla seriale USB) sono in:
La stessa pagina compare nell'elenco Documentazione in-app (documentazione MeshChatX) quando viene servita dai file T383838meshchatx-docs inclusi o sincronizzati.
Desktop Linux: font emoji
Il selettore emoji mostra gli emoji Unicode standard usando i font di sistema (Electron/Chromium). Se compaiono quadrati vuoti ("tofu"), installate un pacchetto emoji a colori e riavviate l'app.
┌────────────────────────────┬──────────────────────────────────────────────────────────────────┐
│ Famiglia (esempi) │ Pacchetto │
├────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Arch Linux, Artix, Manjaro │ T383838noto-fonts-emoji (T383838sudo pacman -S noto-fonts-emoji) │
│ Debian, Ubuntu │ T383838fonts-noto-color-emoji (T383838sudo apt install fonts-noto-color-emoji) │
│ Fedora │ T383838google-noto-emoji-color-fonts │
└────────────────────────────┴──────────────────────────────────────────────────────────────────┘
Dopo l'installazione, eseguite T383838fc-cache -fv se i glifi non compaiono fino al prossimo accesso. Opzionale: T383838noto-fonts per una copertura simboli più ampia su installazioni minime.
Compilazione pacchetti desktop da sorgente
Gli script sono definiti in T383838package.json e T383838Taskfile.yml.
Linux x64 AppImage + DEB
T282828
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
T282828
pnpm run dist:linux-arm64
RPM
T282828
pnpm run dist:rpm
Oppure tramite Task:
T282828
task dist:fe:rpm
Supporto architetture
• Immagine Docker: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (script di build disponibili)
• macOS: script di build disponibili (T383838arm64, T383838universal) per ambienti di build locali
• Android: APK nativi — T383838arm64-v8a, T383838x86_64, universale
Android
MeshChatX supporta build APK Android native (non solo Termux).
Build APK da sorgente
Dalla root del repository:
T282828
T8b949e# 1) Build delle wheel Chaquopy usate da android/app/build.gradle
bash scripts/build-android-wheels-local.sh
T8b949e# 2) Build degli APK slim predefiniti (universal: un APK per flavor e tipo di build)
Tffa657cd android
./gradlew --no-daemon :app:assembleSlimDebug :app:assembleSlimRelease
Gli output dipendono dai product flavors T383838slim / T383838full (dimensione dell'albero Python) e dall imballaggio ABI T383838universal (predefinito) o T383838split (vedi T383838android/app/build.gradle).
Con T383838-PmeshchatxAbiPackaging=universal (predefinito), un solo APK contiene tutti gli ABI selezionati.
Debug (T383838android/app/build/outputs/apk/slim/debug/):
• T383838app-slim-debug.apk
Release (T383838android/app/build/outputs/apk/slim/release/):
• T383838app-slim-release-unsigned.apk
Per il bundle Python completo: T383838:app:assembleFullDebug o T383838:app:assembleFullRelease.
Note:
• Gli output release sono non firmati di default se non configurate le firme.
• Per una sola build, ad esempio: T383838:app:assembleSlimDebug o T383838:app:assembleSlimRelease.
• ABI: T383838-PmeshchatxAbis o T383838MESHCHATX_ABIS; imballaggio: T383838-PmeshchatxAbiPackaging o T383838MESHCHATX_ABI_PACKAGING.
• Albero T383838meshchatx/ per Chaquopy: T383838slim in T383838src/slim/python/, T383838full in T383838src/full/python/. Dettagli in android/README.md.
Documentazione aggiuntiva:
Configurazione
┌────────────────────────┬──────────────────────────────────────┬─────────────┬────────────────────┐
│ Argomento │ Variabile d'ambiente │ Predefinito │ Descrizione │
├────────────────────────┼──────────────────────────────────────┼─────────────┼────────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Indirizzo di bind… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Porta del web ser… │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Disattiva HTTPS │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (nessuno) │ Percorsi PEM cert… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (nessuno) │ Livello di log Re… │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Non aprire il bro… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Attiva autenticaz… │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Directory dei dati │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ auto/bundle │ Directory dei fil… │
└────────────────────────┴──────────────────────────────────────┴─────────────┴────────────────────┘
Branch
┌────────┬───────────────────────────────────────────────────────────────────────┐
│ Branch │ Scopo │
├────────┼───────────────────────────────────────────────────────────────────────┤
│ T383838master │ Release stabili. Solo codice pronto per la produzione. │
│ T383838dev │ Sviluppo attivo. Potrebbe contenere modifiche instabili o incomplete. │
└────────┴───────────────────────────────────────────────────────────────────────┘
Sviluppo
Attivita comuni da T383838Taskfile.yml:
T282828
task install
task lint:all
task test:all
task build:all
Scorciatoie T383838Makefile:
┌──────────────┬───────────────────────────────────────────┐
│ Comando │ Descrizione │
├──────────────┼───────────────────────────────────────────┤
│ T383838make install │ Installa dipendenze pnpm e poetry │
│ T383838make run │ Esegue MeshChatX tramite poetry │
│ T383838make build │ Compila il frontend │
│ T383838make lint │ Esegue eslint e ruff │
│ T383838make test │ Test frontend e backend │
│ T383838make clean │ Rimuove artefatti di build e node_modules │
└──────────────┴───────────────────────────────────────────┘
Versioning
Versione attuale nel repository: T3838384.5.0.
• La fonte della versione JavaScript/Electron e T383838package.json.
• T383838meshchatx/src/version.py e sincronizzato da T383838package.json con:
T282828
pnpm run version:sync
Per release coerenti, allineare i campi di versione dove richiesto (T383838package.json, T383838pyproject.toml, T383838meshchatx/__init__.py).
Sicurezza
• Controlli di integrita integrati e HTTPS/WSS predefiniti nell'app
• Workflow di scansione CI in T383838.gitea/workflows/
Aggiungere una lingua
Il rilevamento della lingua locale è automatico. Aggiungi un nuovo file in T383838meshchatx/src/frontend/locales/ (ad esempio T383838xx.json) con le stesse chiavi di T383838en.json e un campo in cima T383838_languageName per l'etichetta nel selettore lingue. Puoi copiare T383838en.json e tradurre tutto a mano; la generazione automatica è opzionale e non è mai obbligatoria.
Correzioni e traduzioni umane sono benvenute. Miglioramenti a un file esistente o un file interamente tradotto a mano possono essere inviati con una pull request o una segnalazione sul repository sorgente o sul mirror GitHub.
Opzionale: bozza con Argos Translate -- Se vuoi una prima bozza generata da T383838en.json, puoi usare T383838scripts/argos_translate.py. Gestisce la formattazione e aiuta a proteggere le variabili di interpolazione (come T383838{count}).
T282828
T8b949e# Installa argostranslate se non l'hai già fatto
pip install argostranslate
T8b949e# Esegui lo script di traduzione
python scripts/argos_translate.py --from en --to xx --input meshchatx/src/frontend/locales/en.json --output meshchatx/src/frontend/locales/xx.json --name Ta5d6ff"Nome della tua lingua"
Dopo una passata automatica, fai verificare grammatica, contesto e tono a un LLM o a un revisore umano (es. formale vs informale).
Verifica la parità delle chiavi con: T383838pnpm test -- tests/frontend/i18n.test.js --run
Non sono necessarie altre modifiche al codice. L'app, il selettore della lingua e i test scoprono le lingue dalla cartella T383838meshchatx/src/frontend/locales/ durante la compilazione.
Crediti
• Liam Cottle - Reticulum MeshChat originale
• RFnexus - Parser Micron (JavaScript)
• markqvist - Reticulum, LXMF, LXST
Licenza
Le parti di proprieta del progetto sono rilasciate sotto 0BSD.
Le parti originali upstream derivate da MeshChat restano sotto MIT.
Per testo completo e note, vedi ../LICENSE.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────